package telas;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.text.MaskFormatter;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JSeparator;
import javax.swing.JDesktopPane;
import java.awt.Component;
import javax.swing.Box;
import javax.swing.JButton;

import organizador.User;

import dado.DAOUser;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.ParseException;
import java.util.ArrayList;

public class CadastraUser extends JFrame {

	private JPanel contentPane;
	private JTextField txtEmail;
	private JTextField txtCpf;
	private JTextField txtLogradouro;
	private JTextField txtCidade;
	private JTextField txtEstado;
	private JTextField txtNome;
	private JTextField txtTelefone;
	private JTextField txtSobrenome;
	private int status;
	private DAOUser dadosUser = new DAOUser();
	
	private User user =  new User() ;
	private JLabel lblClienteId;
	private JLabel lblId;
	
	protected void abreTela(int status,User user){
		this.status = status;
		if(status==1){
			lblClienteId.setText("");
			lblId.setText("");
			txtCpf.setEditable(true);	
		}
	if(status==2){
		lblClienteId.setText("Cliente ID: ");
		lblId.setText(String.valueOf(user.getId()));
		txtCpf.setEditable(false);
		txtEmail.setText(user.getEmail());
		txtCpf.setText(user.getCpf());
		txtLogradouro.setText(user.getLogradouro());
		txtCidade.setText(user.getCidade());
		txtEstado.setText(user.getEstado());
		txtNome.setText(user.getNome());
		txtTelefone.setText(user.getTelefone());
		txtSobrenome.setText(user.getSobrenome());		
		
		
	}
	}
	 

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CadastraUser frame = new CadastraUser();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public CadastraUser() {
		setTitle("Cadastro de Cliente");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 276);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		lblClienteId = new JLabel("Cliente ID: ");
		lblClienteId.setBounds(294, 11, 59, 14);
		contentPane.add(lblClienteId);
		
		lblId = new JLabel("");
		lblId.setBounds(363, 11, 46, 14);
		contentPane.add(lblId);
		
		JLabel lblNomeDoCliente = new JLabel("Nome:");
		lblNomeDoCliente.setBounds(10, 36, 96, 14);
		contentPane.add(lblNomeDoCliente);
		
		JLabel lblSobrenome = new JLabel("Sobrenome:");
		lblSobrenome.setBounds(10, 81, 111, 14);
		contentPane.add(lblSobrenome);
		
		txtSobrenome = new JTextField();
		txtSobrenome.setBounds(10, 95, 214, 20);
		contentPane.add(txtSobrenome);
		txtSobrenome.setColumns(10);
		
		txtNome = new JTextField();
		txtNome.setColumns(10);
		txtNome.setBounds(10, 50, 214, 20);
		contentPane.add(txtNome);
		
		JLabel lblTelefone = new JLabel("Telefone:");
		lblTelefone.setBounds(231, 36, 65, 14);
		contentPane.add(lblTelefone);
		
		try {
			txtTelefone = new JFormattedTextField(new MaskFormatter("(##) ####-####"));
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		txtTelefone.setBounds(231, 50, 201, 20);
		contentPane.add(txtTelefone);
		txtTelefone.setColumns(10);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(10, 23, 422, 2);
		contentPane.add(separator);
		
		JButton btnConfirmar = new JButton("Confirmar");
		btnConfirmar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			
				user.setNome(txtNome.getText());
				user.setSobrenome(txtSobrenome.getText());
				user.setTelefone(txtTelefone.getText());
				user.setEmail(txtEmail.getText());
				user.setCpf(txtCpf.getText());
				user.setLogradouro(txtLogradouro.getText());
				user.setEstado(txtEstado.getText());
				user.setCidade(txtCidade.getText());
								
				if(status ==1){
			
					dadosUser.createUser(user);
				}else{
					if(status == 2){
						
						dadosUser.updateUser(user);	
					
					}
				}
				
				txtNome.setText(null);
				txtSobrenome.setText(null);
				txtTelefone.setText(null);
				txtEmail.setText(null);
				txtCpf.setText(null);
				txtLogradouro.setText(null);
				txtEstado.setText(null);
				txtCidade.setText(null);
				txtCpf.setEditable(true);
				dispose();
		
			}
		});
		btnConfirmar.setBounds(10, 222, 214, 23);
		contentPane.add(btnConfirmar);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtNome.setText(null);
				txtSobrenome.setText(null);
				txtEmail.setText(null);
				txtTelefone.setText(null);
				txtCpf.setText(null);
				txtLogradouro.setText(null);
				txtCidade.setText(null);
				txtEstado.setText(null);
				
				dispose();
			}
		});
		btnCancelar.setBounds(231, 222, 201, 23);
		contentPane.add(btnCancelar);
		
		txtEmail = new JTextField();
		txtEmail.setColumns(10);
		txtEmail.setBounds(231, 95, 201, 20);
		contentPane.add(txtEmail);
		
		JLabel lblEmail = new JLabel("E-mail:");
		lblEmail.setBounds(231, 81, 111, 14);
		contentPane.add(lblEmail);
		
		JLabel lblCpf = new JLabel("CPF:");
		lblCpf.setBounds(10, 126, 84, 14);
		contentPane.add(lblCpf);
		
		try {
			txtCpf = new JFormattedTextField(new MaskFormatter("###.###.###-##"));
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		txtCpf.setBounds(10, 140, 140, 23);
		contentPane.add(txtCpf);
		
		JLabel lblLogradouro = new JLabel("Logradouro:");
		lblLogradouro.setBounds(231, 126, 111, 14);
		contentPane.add(lblLogradouro);
		
		txtLogradouro = new JTextField();
		txtLogradouro.setColumns(10);
		txtLogradouro.setBounds(231, 140, 201, 20);
		contentPane.add(txtLogradouro);
		
		JLabel lblCidade = new JLabel("Cidade:");
		lblCidade.setBounds(10, 171, 84, 14);
		contentPane.add(lblCidade);
		
		txtCidade = new JTextField();
		txtCidade.setColumns(10);
		txtCidade.setBounds(10, 185, 214, 20);
		contentPane.add(txtCidade);
		
		JLabel lblEstado = new JLabel("Estado:");
		lblEstado.setBounds(231, 171, 96, 14);
		contentPane.add(lblEstado);
		
		txtEstado = new JTextField();
		txtEstado.setColumns(10);
		txtEstado.setBounds(231, 185, 201, 20);
		contentPane.add(txtEstado);
	}
}
